--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
android/app/src/main/java/com/meshchatx/AppSettingsLauncher.java 9ea4efe98ab64cc1294fae7fd9909e6edc4e4c1f (9ea4efe9) Text, 3.69 KB
Tff7b72package T7ee787com.meshchatxTb4b4b4;
Tff7b72import T7ee787android.content.ActivityNotFoundExceptionTb4b4b4;
Tff7b72import T7ee787android.content.ContextTb4b4b4;
Tff7b72import T7ee787android.content.IntentTb4b4b4;
Tff7b72import T7ee787android.net.UriTb4b4b4;
Tff7b72import T7ee787android.provider.SettingsTb4b4b4;
Tff7b72import T7ee787android.util.LogTb4b4b4;
Tff7b72import T7ee787android.widget.ToastTb4b4b4;
T8b949e/**
* Open app / Bluetooth settings with GrapheneOS-friendly fallbacks.
*
* ACTION_APPLICATION_DETAILS_SETTINGS alone can fail on hardened builds. Try
* several intents before surfacing an error to the user.
*/
Tff7b72public Tff7b72final Tff7b72class T56d364AppSettingsLauncher Tb4b4b4{
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3TAG Tff7b72= Ta5d6ff"Ta5d6ffAppSettingsLauncherTa5d6ff"Tb4b4b4;
Tff7b72private Td2a8ffAppSettingsLauncherTb4b4b4(Tb4b4b4) Tb4b4b4{
Tb4b4b4}
Tff7b72public Tff7b72static Tffa657boolean Td2a8ffopenAppDetailsTb4b4b4(Te6edf3Context Te6edf3contextTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3context Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3packageName Tff7b72= Te6edf3contextTb4b4b4.Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3IntentTff7b72[Tff7b72] Te6edf3candidates Tff7b72=
Tff7b72new Te6edf3IntentTff7b72[Tff7b72] Tb4b4b4{
Te6edf3detailsIntentTb4b4b4(Te6edf3packageNameTb4b4b4)Tb4b4b4,
Te6edf3detailsIntentWithSettingsPackageTb4b4b4(Te6edf3packageNameTb4b4b4)Tb4b4b4,
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_APPLICATION_DETAILS_SETTINGSTb4b4b4)
Tb4b4b4.Te6edf3setDataTb4b4b4(Te6edf3UriTb4b4b4.Te6edf3parseTb4b4b4(Ta5d6ff"Ta5d6ffpackage:Ta5d6ff" Tff7b72+ Te6edf3packageNameTb4b4b4)Tb4b4b4)Tb4b4b4,
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_MANAGE_APPLICATIONS_SETTINGSTb4b4b4)Tb4b4b4,
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_SETTINGSTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72return Te6edf3startFirstAvailableTb4b4b4(Te6edf3contextTb4b4b4, Te6edf3candidatesTb4b4b4, Ta5d6ff"Ta5d6ffCould not open app settingsTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72public Tff7b72static Tffa657boolean Td2a8ffopenBluetoothSettingsTb4b4b4(Te6edf3Context Te6edf3contextTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3context Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3String Te6edf3packageName Tff7b72= Te6edf3contextTb4b4b4.Te6edf3getPackageNameTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3IntentTff7b72[Tff7b72] Te6edf3candidates Tff7b72=
Tff7b72new Te6edf3IntentTff7b72[Tff7b72] Tb4b4b4{
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_BLUETOOTH_SETTINGSTb4b4b4)Tb4b4b4,
Te6edf3detailsIntentTb4b4b4(Te6edf3packageNameTb4b4b4)Tb4b4b4,
Te6edf3detailsIntentWithSettingsPackageTb4b4b4(Te6edf3packageNameTb4b4b4)Tb4b4b4,
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_MANAGE_APPLICATIONS_SETTINGSTb4b4b4)Tb4b4b4,
Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_SETTINGSTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72return Te6edf3startFirstAvailableTb4b4b4(
Te6edf3contextTb4b4b4,
Te6edf3candidatesTb4b4b4,
Ta5d6ff"Ta5d6ffCould not open Bluetooth or app settingsTa5d6ff"
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tff7b72static Te6edf3Intent Td2a8ffdetailsIntentTb4b4b4(Te6edf3String Te6edf3packageNameTb4b4b4) Tb4b4b4{
Te6edf3Intent Te6edf3intent Tff7b72= Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3SettingsTb4b4b4.Te6edf3ACTION_APPLICATION_DETAILS_SETTINGSTb4b4b4)Tb4b4b4;
Te6edf3intentTb4b4b4.Te6edf3setDataTb4b4b4(Te6edf3UriTb4b4b4.Te6edf3fromPartsTb4b4b4(Ta5d6ff"Ta5d6ffpackageTa5d6ff"Tb4b4b4, Te6edf3packageNameTb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3intentTb4b4b4;
Tb4b4b4}
Tff7b72private Tff7b72static Te6edf3Intent Td2a8ffdetailsIntentWithSettingsPackageTb4b4b4(Te6edf3String Te6edf3packageNameTb4b4b4) Tb4b4b4{
Te6edf3Intent Te6edf3intent Tff7b72= Te6edf3detailsIntentTb4b4b4(Te6edf3packageNameTb4b4b4)Tb4b4b4;
Te6edf3intentTb4b4b4.Te6edf3setPackageTb4b4b4(Ta5d6ff"Ta5d6ffcom.android.settingsTa5d6ff"Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3intentTb4b4b4;
Tb4b4b4}
Tff7b72private Tff7b72static Tffa657boolean Td2a8ffstartFirstAvailableTb4b4b4(
Te6edf3Context Te6edf3contextTb4b4b4,
Te6edf3IntentTff7b72[Tff7b72] Te6edf3candidatesTb4b4b4,
Te6edf3String Te6edf3failureMessage
Tb4b4b4) Tb4b4b4{
Te6edf3Exception Te6edf3last Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72for Tb4b4b4(Te6edf3Intent Te6edf3base Tb4b4b4: Te6edf3candidatesTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3base Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Te6edf3Intent Te6edf3intent Tff7b72= Tff7b72new Te6edf3IntentTb4b4b4(Te6edf3baseTb4b4b4)Tb4b4b4;
Te6edf3intentTb4b4b4.Te6edf3addFlagsTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3FLAG_ACTIVITY_NEW_TASKTb4b4b4)Tb4b4b4;
Te6edf3contextTb4b4b4.Te6edf3startActivityTb4b4b4(Te6edf3intentTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3ActivityNotFoundException Tff7b72| Te6edf3SecurityException Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3last Tff7b72= Te6edf3eTb4b4b4;
Te6edf3LogTb4b4b4.Te6edf3wTb4b4b4(Te6edf3TAGTb4b4b4, Ta5d6ff"Ta5d6ffSettings intent failed: Ta5d6ff" Tff7b72+ Te6edf3baseTb4b4b4.Te6edf3getActionTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff Ta5d6ff" Tff7b72+ Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3last Tff7b72= Te6edf3eTb4b4b4;
Te6edf3LogTb4b4b4.Te6edf3wTb4b4b4(Te6edf3TAGTb4b4b4, Ta5d6ff"Ta5d6ffSettings intent failed: Ta5d6ff" Tff7b72+ Te6edf3baseTb4b4b4.Te6edf3getActionTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff Ta5d6ff" Tff7b72+ Te6edf3eTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3String Te6edf3detail Tff7b72= Te6edf3last Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3lastTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4) Tff7b72!Tff7b72= Tff7b72null Tff7b72? Te6edf3lastTb4b4b4.Te6edf3getMessageTb4b4b4(Tb4b4b4) Tb4b4b4: Ta5d6ff"Ta5d6ff"Tb4b4b4;
Te6edf3ToastTb4b4b4.Te6edf3makeTextTb4b4b4(
Te6edf3contextTb4b4b4,
Te6edf3detailTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4) Tff7b72? Te6edf3failureMessage Tb4b4b4: Te6edf3failureMessage Tff7b72+ Ta5d6ff"Ta5d6ff: Ta5d6ff" Tff7b72+ Te6edf3detailTb4b4b4,
Te6edf3ToastTb4b4b4.Te6edf3LENGTH_LONGTb4b4b4)
Tb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────